// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Azərbaycanda Glory Casino ödəniş üsulları və istifadə rahatlığı – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Azərbaycanda Glory Casino ödəniş üsulları və istifadə rahatlığı

Glory Casino sizə unikal oyun imkanları və Glory Casino bonus ilə zəngin seçimlər təqdim edir. Glory Casino indir və mobil cihazınıza Glory Casino yukle edərək, istənilən yerdən oyunun keyfini çıxarın.

Glory Casino güncel giriş ilə hesabınıza daxil olun və Glory Casino online platformasında maraqlı oyunlar oynayın. Glory Casino APK ilə mobil cihazınızda rahatlıqla oynamaq mümkündür.

Glory Casino login edərək, ödəniş üsullarını seçin və qazancınızı anında əldə edin. glory casino azerbaijan sizin üçün ən etibarlı və maraqlı oyun platformasıdır!

Glory Casino-də ödəniş üsullarının üstünlükləri

Glory Casino giriş edərək müxtəlif ödəniş üsullarından istifadə edə bilərsiniz. Bu üsullar sürətli, təhlükəsiz və rahatdır. Glory Casino güncel giriş ilə hesabınıza daxil olub, ödənişlərinizi asanlıqla həyata keçirə bilərsiniz.

Glory Casino yukle edərək mobil cihazlarınızdan da ödənişlərinizi idarə edə bilərsiniz. Glory Casino login edib, istifadəçi hesabınıza daxil olaraq ödəniş tarixçənizi izləyə bilərsiniz.

Glory Casino indir seçimi ilə əlavə funksiyalardan yararlanaraq, ödənişlərinizi daha səmərəli şəkildə həyata keçirə bilərsiniz. Glory Casino Azerbaijan istifadəçiləri üçün xüsusi ödəniş üsulları təqdim olunur.

Glory Casino bonus sistemindən istifadə edərək, ödənişləriniz zamanı əlavə üstünlüklər əldə edə bilərsiniz. Glory Casino apk ilə mobil tətbiq vasitəsilə ödənişlərinizi daha rahat idarə edin.

Bank kartları ilə ödəniş: rahatlıq və təhlükəsizlik

Glory Casino Azerbaijan istifadəçiləri üçün bank kartları ilə ödəniş prosesini asan və təhlükəsiz edir. Bu üsul ilə siz tez və rahat şəkildə əməliyyatlarınızı həyata keçirə bilərsiniz. Aşağıdakı üstünlüklər sizi gözləyir:

  • Yüksək təhlükəsizlik standartları ilə məlumatlarınız qorunur.
  • Ödənişlər bir neçə dəqiqə ərzində tamamlanır.
  • Glory Casino giriş edərək istənilən vaxt ödəniş edə bilərsiniz.

Glory Casino online platformasında ödəniş üsulları ilə tanış olmaq üçün aşağıdakı addımları izləyin:

  • Glory Casino güncel giriş edin və hesabınıza daxil olun.
  • Glory Casino APK və ya Glory Casino yukle seçimi ilə mobil cihazınızdan da istifadə edə bilərsiniz.
  • Ödəniş bölməsində bank kartınızın məlumatlarını daxil edin.
  • Glory Casino indir seçimi ilə proqramı quraşdıraraq daha rahat əməliyyatlar edin.
  • Glory Casino login edərək təhlükəsiz ödənişlərin rahatlığını hiss edin və əyləncəli oyun təcrübəsinə başlayın!

    Elektron pul kisələri: sürətli və effektiv

    Glory Casino Azerbaijan istifadəçiləri üçün elektron pul kisələri ilə ödənişlər sürətli və təhlükəsizdir. Glory Casino online platformasında müxtəlif ödəniş üsulları təqdim olunur ki, bu da oyunçulara rahatlıq yaradır. Glory Casino bonus-larınızı daha tez əldə etmək üçün elektron pul kisələrindən istifadə edə bilərsiniz.

    Glory Casino yüklə seçimi ilə mobil cihazlarınızdan da asanlıqla ödəniş edə bilərsiniz. Glory Casino APK vasitəsilə giriş edərək, elektron pul kisələrinizlə depozit və çıxarışları sürətlə həyata keçirin. Glory Casino güncel giriş linki ilə hesabınıza daxil olaraq, ödənişlərinizi effektiv şəkildə idarə edin.

    Glory Casino login etdikdən sonra, elektron pul kisələrinin üstünlüklərindən yararlanaraq, oyun təcrübənizi daha da zənginləşdirin. Glory Casino indir seçimi ilə mobil tətbiq vasitəsilə ödənişlərinizi rahatlıqla idarə edin. Elektron pul kisələri ilə Glory Casino-da hər an sürətli və təhlükəsiz ödəniş imkanı əldə edin.

    Kriptovalyuta ilə ödəniş: müasir texnologiyalar

    Glory Casino Azerbaijan kriptovalyuta ilə ödəniş imkanı təqdim edərək müasir texnologiyaların üstünlüklərindən yararlanmaq istəyənlər üçün ideal seçimdir. Glory Casino online platformasında Bitcoin, Ethereum və digər məşhur kriptovalyutalarla asanlıqla əməliyyatlar həyata keçirə bilərsiniz.

    Glory Casino indir və ya Glory Casino yukle edərək mobil cihazlarınızdan da kriptovalyuta ilə ödənişlərin rahatlığını yaşaya bilərsiniz. Glory Casino giriş etdikdən sonra istifadəçilər üçün xüsusi Glory Casino bonus təklifləri də mövcuddur.

    Glory Casino güncel giriş vasitəsilə hesabınıza daxil olaraq, kriptovalyuta ilə ödənişlərin sürətli və təhlükəsiz olduğunu görə bilərsiniz. Glory Casino login edərək, müasir ödəniş üsullarının bütün üstünlüklərindən yararlanmaq imkanı əldə edin.

    Glory Casino Azerbaijan kriptovalyuta ilə ödənişləri dəstəkləyərək, istifadəçilərə daha geniş və müasir bir oyun təcrübəsi təqdim edir. Glory Casino online platformasında kriptovalyuta ilə ödəniş etmək üçün sadəcə hesabınıza daxil olun və rahatlıqla əməliyyatlarınızı həyata keçirin.

    Mobil ödənişlər: hər yerdə və hər zaman

    Glory Casino online platformasında mobil ödənişlərlə rahatlıqla əməliyyatlarınızı həyata keçirə bilərsiniz. İstər glory casino giriş, istərsə də glory casino yukle etdikdən sonra, aşağıdakı üstünlüklərdən yararlanın:

    • Glory casino güncel giriş ilə hesabınıza daxil olun və mobil ödənişlərin rahatlığını hiss edin.
    • Glory casino indir seçimi ilə mobil tətbiqi telefonunuza yükləyin və hər yerdə oyun oynayın.
    • Glory casino apk faylı ilə Android cihazlarınızda sürətli və təhlükəsiz ödənişlər edin.
    • Glory casino login edərək, bonuslarınızı mobil cihazlarınızda idarə edin.

    Glory casino azerbaijan istifadəçiləri üçün mobil ödənişlər sürətli, təhlükəsiz və əlçatandır. Glory casino bonus təkliflərindən yararlanmaq üçün mobil cihazlarınızı istifadə edin və hər zaman qalib olmaq imkanı əldə edin!

    Ödənişlərin təhlükəsizliyi: məlumatların qorunması

    Glory Casino Azerbaijan istifadəçilərinin məlumatlarının qorunması üçün ən müasir təhlükəsizlik texnologiyalarından istifadə edir. “Glory Casino APK” və “Glory Casino online” platformalarında bütün ödənişlər şifrələnmiş kanallar vasitəsilə həyata keçirilir.

    Xüsusiyyət
    Təminat

    Məlumat şifrələmə SSL protokolu ilə təmin edilir Hesab girişi “Glory Casino login” və “Glory Casino giriş” zamanı iki mərhələli identifikasiya Bonus təhlükəsizliyi “Glory Casino bonus” sistemində şəxsi məlumatlar qorunur

    “Glory Casino yukle” və “Glory Casino güncel giriş” vasitəsilə platformaya daxil olarkən, istifadəçilərin məlumatları tam qorunur. Təhlükəsizlik standartlarına uyğun olaraq, bütün məlumatlar üçüncü tərəflərə açıq deyil.

    Glory Casino-də ödəniş prosesinin sadəliyi

    Glory Casino online platformasında ödəniş etmək olduqca asan və rahatdır. Glory Casino Azerbaijan istifadəçiləri üçün müxtəlif ödəniş üsulları təqdim olunur. Glory Casino yukle edərək və ya Glory Casino apk ilə mobil cihazınıza quraşdıraraq, ödənişləri tez bir zamanda həyata keçirə bilərsiniz.

    Glory Casino login edib hesabınıza daxil olduqdan sonra, istifadəçi panelindən ödəniş bölməsinə keçid edə bilərsiniz. Glory Casino güncel giriş ilə hesabınıza daxil olaraq, müxtəlif ödəniş metodlarından istifadə edə bilərsiniz. Glory Casino bonus-larından yararlanaraq, əlavə üstünlüklər əldə edə bilərsiniz.

    Glory Casino indir seçimi ilə mobil tətbiqi yükləyərək, ödənişlərinizi hər yerdən rahatlıqla edə bilərsiniz. Glory Casino-də təhlükəsiz və sürətli ödəniş prosesi ilə oyun təcrübənizi daha da maraqlı edə bilərsiniz.

    Design and Develop by Ovatheme